BJ_CELLWIDTH = 128.0
BJ_CLIFFHEIGHT = 128.0
BJ_UNIT_FACING = 270.0
BJ_TEXT_DELAY_QUEST = 20.00
BJ_TEXT_DELAY_QUESTUPDATE = 20.00
BJ_TEXT_DELAY_QUESTDONE = 20.00
BJ_TEXT_DELAY_QUESTFAILED = 20.00
BJ_TEXT_DELAY_QUESTREQUIREMENT = 20.00
BJ_TEXT_DELAY_MISSIONFAILED = 20.00
BJ_TEXT_DELAY_ALWAYSHINT = 12.00
BJ_TEXT_DELAY_HINT = 12.00
BJ_TEXT_DELAY_SECRET = 10.00
BJ_TEXT_DELAY_UNITACQUIRED = 15.00
BJ_TEXT_DELAY_UNITAVAILABLE = 10.00
BJ_TEXT_DELAY_ITEMACQUIRED = 10.00
BJ_TEXT_DELAY_WARNING = 12.00
BJ_QUEUE_DELAY_QUEST = 5.00
BJ_QUEUE_DELAY_HINT = 5.00
BJ_QUEUE_DELAY_SECRET = 3.00
BJ_HANDICAP_EASY = 60.00
BJ_GAME_STARTED_THRESHOLD = 0.01
BJ_WAIT_FOR_COND_MIN_INTERVAL = 0.10
BJ_POLLED_WAIT_INTERVAL = 0.10
BJ_POLLED_WAIT_SKIP_THRESHOLD = 2.00
BJ_MAX_INVENTORY = 6
BJ_MAX_PLAYERS = 12
BJ_MAX_PLAYER_SLOTS = 16
BJ_MAX_SKELETONS = 25
BJ_MAX_STOCK_ITEM_SLOTS = 11
BJ_MAX_STOCK_UNIT_SLOTS = 11
BJ_MAX_ITEM_LEVEL = 10
BJ_TOD_DAWN = 6.00
BJ_TOD_DUSK = 18.00
BJ_MELEE_STARTING_TOD = 8.00
BJ_MELEE_STARTING_GOLD_V0 = 750
BJ_MELEE_STARTING_GOLD_V1 = 500
BJ_MELEE_STARTING_LUMBER_V0 = 200
BJ_MELEE_STARTING_LUMBER_V1 = 150
BJ_MELEE_STARTING_HERO_TOKENS = 1
BJ_MELEE_HERO_LIMIT = 3
BJ_MELEE_HERO_TYPE_LIMIT = 1
BJ_MELEE_MINE_SEARCH_RADIUS = 2000
BJ_MELEE_CLEAR_UNITS_RADIUS = 1500
BJ_MELEE_CRIPPLE_TIMEOUT = 120.00
BJ_MELEE_CRIPPLE_MSG_DURATION = 20.00
BJ_MELEE_MAX_TWINKED_HEROES_V0 = 3
BJ_MELEE_MAX_TWINKED_HEROES_V1 = 1
BJ_CREEP_ITEM_DELAY = 0.50
BJ_STOCK_RESTOCK_INITIAL_DELAY = 120
BJ_STOCK_RESTOCK_INTERVAL = 30
BJ_STOCK_MAX_ITERATIONS = 20
BJ_MAX_DEST_IN_REGION_EVENTS = 64
BJ_CAMERA_MIN_FARZ = 100
BJ_CAMERA_DEFAULT_DISTANCE = 1650
BJ_CAMERA_DEFAULT_FARZ = 5000
BJ_CAMERA_DEFAULT_AOA = 304
BJ_CAMERA_DEFAULT_FOV = 70
BJ_CAMERA_DEFAULT_ROLL = 0
BJ_CAMERA_DEFAULT_ROTATION = 90
BJ_RESCUE_PING_TIME = 2.00
BJ_NOTHING_SOUND_DURATION = 5.00
BJ_TRANSMISSION_PING_TIME = 1.00
BJ_TRANSMISSION_IND_RED = 255
BJ_TRANSMISSION_IND_BLUE = 255
BJ_TRANSMISSION_IND_GREEN = 255
BJ_TRANSMISSION_IND_ALPHA = 255
BJ_TRANSMISSION_PORT_HANGTIME = 1.50
BJ_CINEMODE_INTERFACEFADE = 0.50
BJ_CINEMODE_GAMESPEED = MAP_SPEED_NORMAL
BJ_CINEMODE_VOLUME_UNITMOVEMENT = 0.40
BJ_CINEMODE_VOLUME_UNITSOUNDS = 0.00
BJ_CINEMODE_VOLUME_COMBAT = 0.40
BJ_CINEMODE_VOLUME_SPELLS = 0.40
BJ_CINEMODE_VOLUME_UI = 0.00
BJ_CINEMODE_VOLUME_MUSIC = 0.55
BJ_CINEMODE_VOLUME_AMBIENTSOUNDS = 1.00
BJ_CINEMODE_VOLUME_FIRE = 0.60
BJ_SPEECH_VOLUME_UNITMOVEMENT = 0.25
BJ_SPEECH_VOLUME_UNITSOUNDS = 0.00
BJ_SPEECH_VOLUME_COMBAT = 0.25
BJ_SPEECH_VOLUME_SPELLS = 0.25
BJ_SPEECH_VOLUME_UI = 0.00
BJ_SPEECH_VOLUME_MUSIC = 0.55
BJ_SPEECH_VOLUME_AMBIENTSOUNDS = 1.00
BJ_SPEECH_VOLUME_FIRE = 0.60
BJ_SMARTPAN_TRESHOLD_PAN = 500
BJ_SMARTPAN_TRESHOLD_SNAP = 3500
BJ_MAX_QUEUED_TRIGGERS = 100
BJ_QUEUED_TRIGGER_TIMEOUT = 180.00
BJ_CAMPAIGN_INDEX_T = 0
BJ_CAMPAIGN_INDEX_H = 1
BJ_CAMPAIGN_INDEX_U = 2
BJ_CAMPAIGN_INDEX_O = 3
BJ_CAMPAIGN_INDEX_N = 4
BJ_CAMPAIGN_INDEX_XN = 5
BJ_CAMPAIGN_INDEX_XH = 6
BJ_CAMPAIGN_INDEX_XU = 7
BJ_CAMPAIGN_INDEX_XO = 8
BJ_CAMPAIGN_OFFSET_T = 0
BJ_CAMPAIGN_OFFSET_H = 1
BJ_CAMPAIGN_OFFSET_U = 2
BJ_CAMPAIGN_OFFSET_O = 3
BJ_CAMPAIGN_OFFSET_N = 4
BJ_CAMPAIGN_OFFSET_XN = 0
BJ_CAMPAIGN_OFFSET_XH = 1
BJ_CAMPAIGN_OFFSET_XU = 2
BJ_CAMPAIGN_OFFSET_XO = 3
BJ_MISSION_INDEX_T00 = BJ_CAMPAIGN_OFFSET_T * 1000 + 0
BJ_MISSION_INDEX_T01 = BJ_CAMPAIGN_OFFSET_T * 1000 + 1
BJ_MISSION_INDEX_H00 = BJ_CAMPAIGN_OFFSET_H * 1000 + 0
BJ_MISSION_INDEX_H01 = BJ_CAMPAIGN_OFFSET_H * 1000 + 1
BJ_MISSION_INDEX_H02 = BJ_CAMPAIGN_OFFSET_H * 1000 + 2
BJ_MISSION_INDEX_H03 = BJ_CAMPAIGN_OFFSET_H * 1000 + 3
BJ_MISSION_INDEX_H04 = BJ_CAMPAIGN_OFFSET_H * 1000 + 4
BJ_MISSION_INDEX_H05 = BJ_CAMPAIGN_OFFSET_H * 1000 + 5
BJ_MISSION_INDEX_H06 = BJ_CAMPAIGN_OFFSET_H * 1000 + 6
BJ_MISSION_INDEX_H07 = BJ_CAMPAIGN_OFFSET_H * 1000 + 7
BJ_MISSION_INDEX_H08 = BJ_CAMPAIGN_OFFSET_H * 1000 + 8
BJ_MISSION_INDEX_H09 = BJ_CAMPAIGN_OFFSET_H * 1000 + 9
BJ_MISSION_INDEX_H10 = BJ_CAMPAIGN_OFFSET_H * 1000 + 10
BJ_MISSION_INDEX_H11 = BJ_CAMPAIGN_OFFSET_H * 1000 + 11
BJ_MISSION_INDEX_U00 = BJ_CAMPAIGN_OFFSET_U * 1000 + 0
BJ_MISSION_INDEX_U01 = BJ_CAMPAIGN_OFFSET_U * 1000 + 1
BJ_MISSION_INDEX_U02 = BJ_CAMPAIGN_OFFSET_U * 1000 + 2
BJ_MISSION_INDEX_U03 = BJ_CAMPAIGN_OFFSET_U * 1000 + 3
BJ_MISSION_INDEX_U05 = BJ_CAMPAIGN_OFFSET_U * 1000 + 4
BJ_MISSION_INDEX_U07 = BJ_CAMPAIGN_OFFSET_U * 1000 + 5
BJ_MISSION_INDEX_U08 = BJ_CAMPAIGN_OFFSET_U * 1000 + 6
BJ_MISSION_INDEX_U09 = BJ_CAMPAIGN_OFFSET_U * 1000 + 7
BJ_MISSION_INDEX_U10 = BJ_CAMPAIGN_OFFSET_U * 1000 + 8
BJ_MISSION_INDEX_U11 = BJ_CAMPAIGN_OFFSET_U * 1000 + 9
BJ_MISSION_INDEX_O00 = BJ_CAMPAIGN_OFFSET_O * 1000 + 0
BJ_MISSION_INDEX_O01 = BJ_CAMPAIGN_OFFSET_O * 1000 + 1
BJ_MISSION_INDEX_O02 = BJ_CAMPAIGN_OFFSET_O * 1000 + 2
BJ_MISSION_INDEX_O03 = BJ_CAMPAIGN_OFFSET_O * 1000 + 3
BJ_MISSION_INDEX_O04 = BJ_CAMPAIGN_OFFSET_O * 1000 + 4
BJ_MISSION_INDEX_O05 = BJ_CAMPAIGN_OFFSET_O * 1000 + 5
BJ_MISSION_INDEX_O06 = BJ_CAMPAIGN_OFFSET_O * 1000 + 6
BJ_MISSION_INDEX_O07 = BJ_CAMPAIGN_OFFSET_O * 1000 + 7
BJ_MISSION_INDEX_O08 = BJ_CAMPAIGN_OFFSET_O * 1000 + 8
BJ_MISSION_INDEX_O09 = BJ_CAMPAIGN_OFFSET_O * 1000 + 9
BJ_MISSION_INDEX_O10 = BJ_CAMPAIGN_OFFSET_O * 1000 + 10
BJ_MISSION_INDEX_N00 = BJ_CAMPAIGN_OFFSET_N * 1000 + 0
BJ_MISSION_INDEX_N01 = BJ_CAMPAIGN_OFFSET_N * 1000 + 1
BJ_MISSION_INDEX_N02 = BJ_CAMPAIGN_OFFSET_N * 1000 + 2
BJ_MISSION_INDEX_N03 = BJ_CAMPAIGN_OFFSET_N * 1000 + 3
BJ_MISSION_INDEX_N04 = BJ_CAMPAIGN_OFFSET_N * 1000 + 4
BJ_MISSION_INDEX_N05 = BJ_CAMPAIGN_OFFSET_N * 1000 + 5
BJ_MISSION_INDEX_N06 = BJ_CAMPAIGN_OFFSET_N * 1000 + 6
BJ_MISSION_INDEX_N07 = BJ_CAMPAIGN_OFFSET_N * 1000 + 7
BJ_MISSION_INDEX_N08 = BJ_CAMPAIGN_OFFSET_N * 1000 + 8
BJ_MISSION_INDEX_N09 = BJ_CAMPAIGN_OFFSET_N * 1000 + 9
BJ_MISSION_INDEX_XN00 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 0
BJ_MISSION_INDEX_XN01 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 1
BJ_MISSION_INDEX_XN02 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 2
BJ_MISSION_INDEX_XN03 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 3
BJ_MISSION_INDEX_XN04 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 4
BJ_MISSION_INDEX_XN05 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 5
BJ_MISSION_INDEX_XN06 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 6
BJ_MISSION_INDEX_XN07 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 7
BJ_MISSION_INDEX_XN08 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 8
BJ_MISSION_INDEX_XN09 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 9
BJ_MISSION_INDEX_XN10 = BJ_CAMPAIGN_OFFSET_XN * 1000 + 10
BJ_MISSION_INDEX_XH00 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 0
BJ_MISSION_INDEX_XH01 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 1
BJ_MISSION_INDEX_XH02 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 2
BJ_MISSION_INDEX_XH03 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 3
BJ_MISSION_INDEX_XH04 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 4
BJ_MISSION_INDEX_XH05 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 5
BJ_MISSION_INDEX_XH06 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 6
BJ_MISSION_INDEX_XH07 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 7
BJ_MISSION_INDEX_XH08 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 8
BJ_MISSION_INDEX_XH09 = BJ_CAMPAIGN_OFFSET_XH * 1000 + 9
BJ_MISSION_INDEX_XU00 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 0
BJ_MISSION_INDEX_XU01 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 1
BJ_MISSION_INDEX_XU02 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 2
BJ_MISSION_INDEX_XU03 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 3
BJ_MISSION_INDEX_XU04 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 4
BJ_MISSION_INDEX_XU05 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 5
BJ_MISSION_INDEX_XU06 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 6
BJ_MISSION_INDEX_XU07 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 7
BJ_MISSION_INDEX_XU08 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 8
BJ_MISSION_INDEX_XU09 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 9
BJ_MISSION_INDEX_XU10 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 10
BJ_MISSION_INDEX_XU11 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 11
BJ_MISSION_INDEX_XU12 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 12
BJ_MISSION_INDEX_XU13 = BJ_CAMPAIGN_OFFSET_XU * 1000 + 13
BJ_MISSION_INDEX_XO00 = BJ_CAMPAIGN_OFFSET_XO * 1000 + 0
BJ_CINEMATICINDEX_TOP = 0
BJ_CINEMATICINDEX_HOP = 1
BJ_CINEMATICINDEX_HED = 2
BJ_CINEMATICINDEX_OOP = 3
BJ_CINEMATICINDEX_OED = 4
BJ_CINEMATICINDEX_UOP = 5
BJ_CINEMATICINDEX_UED = 6
BJ_CINEMATICINDEX_NOP = 7
BJ_CINEMATICINDEX_NED = 8
BJ_CINEMATICINDEX_XOP = 9
BJ_CINEMATICINDEX_XED = 10
BJ_ALLIANCE_UNALLIED = 0
BJ_ALLIANCE_UNALLIED_VISION = 1
BJ_ALLIANCE_ALLIED = 2
BJ_ALLIANCE_ALLIED_VISION = 3
BJ_ALLIANCE_ALLIED_UNITS = 4
BJ_ALLIANCE_ALLIED_ADVUNITS = 5
BJ_ALLIANCE_NEUTRAL = 6
BJ_ALLIANCE_NEUTRAL_VISION = 7
BJ_KEYEVENTTYPE_DEPRESS = 0
BJ_KEYEVENTTYPE_RELEASE = 1
BJ_KEYEVENTKEY_LEFT = 0
BJ_KEYEVENTKEY_RIGHT = 1
BJ_KEYEVENTKEY_DOWN = 2
BJ_KEYEVENTKEY_UP = 3
BJ_TIMETYPE_ADD = 0
BJ_TIMETYPE_SET = 1
BJ_TIMETYPE_SUB = 2
BJ_CAMERABOUNDS_ADJUST_ADD = 0
BJ_CAMERABOUNDS_ADJUST_SUB = 1
BJ_QUESTTYPE_REQ_DISCOVERED = 0
BJ_QUESTTYPE_REQ_UNDISCOVERED = 1
BJ_QUESTTYPE_OPT_DISCOVERED = 2
BJ_QUESTTYPE_OPT_UNDISCOVERED = 3
BJ_QUESTMESSAGE_DISCOVERED = 0
BJ_QUESTMESSAGE_UPDATED = 1
BJ_QUESTMESSAGE_COMPLETED = 2
BJ_QUESTMESSAGE_FAILED = 3
BJ_QUESTMESSAGE_REQUIREMENT = 4
BJ_QUESTMESSAGE_MISSIONFAILED = 5
BJ_QUESTMESSAGE_ALWAYSHINT = 6
BJ_QUESTMESSAGE_HINT = 7
BJ_QUESTMESSAGE_SECRET = 8
BJ_QUESTMESSAGE_UNITACQUIRED = 9
BJ_QUESTMESSAGE_UNITAVAILABLE = 10
BJ_QUESTMESSAGE_ITEMACQUIRED = 11
BJ_QUESTMESSAGE_WARNING = 12
BJ_SORTTYPE_SORTBYVALUE = 0
BJ_SORTTYPE_SORTBYPLAYER = 1
BJ_SORTTYPE_SORTBYLABEL = 2
BJ_CINEFADETYPE_FADEIN = 0
BJ_CINEFADETYPE_FADEOUT = 1
BJ_CINEFADETYPE_FADEOUTIN = 2
BJ_REMOVEBUFFS_POSITIVE = 0
BJ_REMOVEBUFFS_NEGATIVE = 1
BJ_REMOVEBUFFS_ALL = 2
BJ_REMOVEBUFFS_NONTLIFE = 3
BJ_BUFF_POLARITY_POSITIVE = 0
BJ_BUFF_POLARITY_NEGATIVE = 1
BJ_BUFF_POLARITY_EITHER = 2
BJ_BUFF_RESIST_MAGIC = 0
BJ_BUFF_RESIST_PHYSICAL = 1
BJ_BUFF_RESIST_EITHER = 2
BJ_BUFF_RESIST_BOTH = 3
BJ_HEROSTAT_STR = 0
BJ_HEROSTAT_AGI = 1
BJ_HEROSTAT_INT = 2
BJ_MODIFYMETHOD_ADD = 0
BJ_MODIFYMETHOD_SUB = 1
BJ_MODIFYMETHOD_SET = 2
BJ_UNIT_STATE_METHOD_ABSOLUTE = 0
BJ_UNIT_STATE_METHOD_RELATIVE = 1
BJ_UNIT_STATE_METHOD_DEFAULTS = 2
BJ_UNIT_STATE_METHOD_MAXIMUM = 3
BJ_GATEOPERATION_CLOSE = 0
BJ_GATEOPERATION_OPEN = 1
BJ_GATEOPERATION_DESTROY = 2
BJ_GAMECACHE_BOOLEAN = 0
BJ_GAMECACHE_INTEGER = 1
BJ_GAMECACHE_REAL = 2
BJ_GAMECACHE_UNIT = 3
BJ_GAMECACHE_STRING = 4
BJ_ITEM_STATUS_HIDDEN = 0
BJ_ITEM_STATUS_OWNED = 1
BJ_ITEM_STATUS_INVULNERABLE = 2
BJ_ITEM_STATUS_POWERUP = 3
BJ_ITEM_STATUS_SELLABLE = 4
BJ_ITEM_STATUS_PAWNABLE = 5
BJ_ITEMCODE_STATUS_POWERUP = 0
BJ_ITEMCODE_STATUS_SELLABLE = 1
BJ_ITEMCODE_STATUS_PAWNABLE = 2
BJ_MINIMAPPINGSTYLE_SIMPLE = 0
BJ_MINIMAPPINGSTYLE_FLASHY = 1
BJ_MINIMAPPINGSTYLE_ATTACK = 2
BJ_CORPSE_MAX_DEATH_TIME = 8.00
BJ_CORPSETYPE_FLESH = 0
BJ_CORPSETYPE_BONE = 1
BJ_ELEVATOR_BLOCKER_CODE = "DTep"
BJ_ELEVATOR_CODE01 = "DTrf"
BJ_ELEVATOR_CODE02 = "DTrx"
BJ_ELEVATOR_WALL_TYPE_ALL = 0
BJ_ELEVATOR_WALL_TYPE_EAST = 1
BJ_ELEVATOR_WALL_TYPE_NORTH = 2
BJ_ELEVATOR_WALL_TYPE_SOUTH = 3
BJ_ELEVATOR_WALL_TYPE_WEST = 4
BJ_MELEE_MAX_TWINKED_HEROES = 0
BJ_slotControlReady = false
BJ_forLoopAIndex = 0
BJ_forLoopBIndex = 0
BJ_forLoopAIndexEnd = 0
BJ_forLoopBIndexEnd = 0
BJ_gameStartedTimer = nil
BJ_gameStarted = false
BJ_isSinglePlayer = false
BJ_dncSoundsDay = nil
BJ_dncSoundsNight = nil
BJ_dayAmbientSound = nil
BJ_nightAmbientSound = nil
BJ_dncSoundsDawn = nil
BJ_dncSoundsDusk = nil
BJ_dawnSound = nil
BJ_duskSound = nil
BJ_useDawnDuskSounds = true
BJ_dncIsDaytime = false
BJ_rescueSound = nil
BJ_questDiscoveredSound = nil
BJ_questUpdatedSound = nil
BJ_questCompletedSound = nil
BJ_questFailedSound = nil
BJ_questHintSound = nil
BJ_questSecretSound = nil
BJ_questItemAcquiredSound = nil
BJ_questWarningSound = nil
BJ_victoryDialogSound = nil
BJ_defeatDialogSound = nil
BJ_rescueUnitBehavior = nil
BJ_rescueChangeColorUnit = true
BJ_rescueChangeColorBldg = true
BJ_cineSceneEndingTimer = nil
BJ_cineSceneLastSound = nil
BJ_cineSceneBeingSkipped = nil
BJ_cineModePriorSpeed = MAP_SPEED_NORMAL
BJ_cineModePriorFogSetting = false
BJ_cineModePriorMaskSetting = false
BJ_cineModeAlreadyIn = false
BJ_cineModePriorDawnDusk = false
BJ_cineModeSavedSeed = 0
BJ_cineFadeFinishTimer = nil
BJ_cineFadeContinueTimer = nil
BJ_cineFadeContinueRed = 0
BJ_cineFadeContinueGreen = 0
BJ_cineFadeContinueBlue = 0
BJ_cineFadeContinueTrans = 0
BJ_cineFadeContinueDuration = 0
BJ_cineFadeContinueTex = ""
JASS_MAX_ARRAY_SIZE = 8192
PLAYER_NEUTRAL_AGGRESSIVE = 12
PLAYER_NEUTRAL_VICTIM = 13
PLAYER_NEUTRAL_EXTRA = 14
PLAYER_NEUTRAL_PASSIVE = 15
PLAYER_COLOR_RED = J.ConvertPlayerColor(0)
PLAYER_COLOR_BLUE = J.ConvertPlayerColor(1)
PLAYER_COLOR_CYAN = J.ConvertPlayerColor(2)
PLAYER_COLOR_PURPLE = J.ConvertPlayerColor(3)
PLAYER_COLOR_YELLOW = J.ConvertPlayerColor(4)
PLAYER_COLOR_ORANGE = J.ConvertPlayerColor(5)
PLAYER_COLOR_GREEN = J.ConvertPlayerColor(6)
PLAYER_COLOR_PINK = J.ConvertPlayerColor(7)
PLAYER_COLOR_LIGHT_GRAY = J.ConvertPlayerColor(8)
PLAYER_COLOR_LIGHT_BLUE = J.ConvertPlayerColor(9)
PLAYER_COLOR_AQUA = J.ConvertPlayerColor(10)
PLAYER_COLOR_BROWN = J.ConvertPlayerColor(11)
PLAYER_COLOR_BLACK = J.ConvertPlayerColor(12)
PLAYER_COLOR = {
    PLAYER_COLOR_RED, PLAYER_COLOR_BLUE, PLAYER_COLOR_CYAN, PLAYER_COLOR_PURPLE,
    PLAYER_COLOR_YELLOW, PLAYER_COLOR_ORANGE, PLAYER_COLOR_GREEN, PLAYER_COLOR_PINK,
    PLAYER_COLOR_LIGHT_GRAY, PLAYER_COLOR_LIGHT_BLUE, PLAYER_COLOR_AQUA, PLAYER_COLOR_BROWN,
    PLAYER_COLOR_BLACK, PLAYER_COLOR_BLACK, PLAYER_COLOR_BLACK, PLAYER_COLOR_BLACK
}
RACE_HUMAN = J.ConvertRace(1)
RACE_ORC = J.ConvertRace(2)
RACE_UNDEAD = J.ConvertRace(3)
RACE_NIGHTELF = J.ConvertRace(4)
RACE_DEMON = J.ConvertRace(5)
RACE_OTHER = J.ConvertRace(7)
PLAYER_GAME_RESULT_VICTORY = J.ConvertPlayerGameResult(0)
PLAYER_GAME_RESULT_DEFEAT = J.ConvertPlayerGameResult(1)
PLAYER_GAME_RESULT_TIE = J.ConvertPlayerGameResult(2)
PLAYER_GAME_RESULT_NEUTRAL = J.ConvertPlayerGameResult(3)
ALLIANCE_PASSIVE = J.ConvertAllianceType(0)
ALLIANCE_HELP_REQUEST = J.ConvertAllianceType(1)
ALLIANCE_HELP_RESPONSE = J.ConvertAllianceType(2)
ALLIANCE_SHARED_XP = J.ConvertAllianceType(3)
ALLIANCE_SHARED_SPELLS = J.ConvertAllianceType(4)
ALLIANCE_SHARED_VISION = J.ConvertAllianceType(5)
ALLIANCE_SHARED_CONTROL = J.ConvertAllianceType(6)
ALLIANCE_SHARED_ADVANCED_CONTROL = J.ConvertAllianceType(7)
ALLIANCE_RESCUABLE = J.ConvertAllianceType(8)
ALLIANCE_SHARED_VISION_FORCED = J.ConvertAllianceType(9)
VERSION_REIGN_OF_CHAOS = J.ConvertVersion(0)
VERSION_FROZEN_THRONE = J.ConvertVersion(1)
ATTACK_TYPE_NORMAL = J.ConvertAttackType(0)
ATTACK_TYPE_MELEE = J.ConvertAttackType(1)
ATTACK_TYPE_PIERCE = J.ConvertAttackType(2)
ATTACK_TYPE_SIEGE = J.ConvertAttackType(3)
ATTACK_TYPE_MAGIC = J.ConvertAttackType(4)
ATTACK_TYPE_CHAOS = J.ConvertAttackType(5)
ATTACK_TYPE_HERO = J.ConvertAttackType(6)
DAMAGE_TYPE_UNKNOWN = J.ConvertDamageType(0)
DAMAGE_TYPE_NORMAL = J.ConvertDamageType(4)
DAMAGE_TYPE_ENHANCED = J.ConvertDamageType(5)
DAMAGE_TYPE_FIRE = J.ConvertDamageType(8)
DAMAGE_TYPE_COLD = J.ConvertDamageType(9)
DAMAGE_TYPE_LIGHTNING = J.ConvertDamageType(10)
DAMAGE_TYPE_POISON = J.ConvertDamageType(11)
DAMAGE_TYPE_DISEASE = J.ConvertDamageType(12)
DAMAGE_TYPE_DIVINE = J.ConvertDamageType(13)
DAMAGE_TYPE_MAGIC = J.ConvertDamageType(14)
DAMAGE_TYPE_SONIC = J.ConvertDamageType(15)
DAMAGE_TYPE_ACID = J.ConvertDamageType(16)
DAMAGE_TYPE_FORCE = J.ConvertDamageType(17)
DAMAGE_TYPE_DEATH = J.ConvertDamageType(18)
DAMAGE_TYPE_MIND = J.ConvertDamageType(19)
DAMAGE_TYPE_PLANT = J.ConvertDamageType(20)
DAMAGE_TYPE_DEFENSIVE = J.ConvertDamageType(21)
DAMAGE_TYPE_DEMOLITION = J.ConvertDamageType(22)
DAMAGE_TYPE_SLOW_POISON = J.ConvertDamageType(23)
DAMAGE_TYPE_SPIRIT_LINK = J.ConvertDamageType(24)
DAMAGE_TYPE_SHADOW_STRIKE = J.ConvertDamageType(25)
DAMAGE_TYPE_UNIVERSAL = J.ConvertDamageType(26)
WEAPON_TYPE_WHOKNOWS = J.ConvertWeaponType(0)
WEAPON_TYPE_METAL_LIGHT_CHOP = J.ConvertWeaponType(1)
WEAPON_TYPE_METAL_MEDIUM_CHOP = J.ConvertWeaponType(2)
WEAPON_TYPE_METAL_HEAVY_CHOP = J.ConvertWeaponType(3)
WEAPON_TYPE_METAL_LIGHT_SLICE = J.ConvertWeaponType(4)
WEAPON_TYPE_METAL_MEDIUM_SLICE = J.ConvertWeaponType(5)
WEAPON_TYPE_METAL_HEAVY_SLICE = J.ConvertWeaponType(6)
WEAPON_TYPE_METAL_MEDIUM_BASH = J.ConvertWeaponType(7)
WEAPON_TYPE_METAL_HEAVY_BASH = J.ConvertWeaponType(8)
WEAPON_TYPE_METAL_MEDIUM_STAB = J.ConvertWeaponType(9)
WEAPON_TYPE_METAL_HEAVY_STAB = J.ConvertWeaponType(10)
WEAPON_TYPE_WOOD_LIGHT_SLICE = J.ConvertWeaponType(11)
WEAPON_TYPE_WOOD_MEDIUM_SLICE = J.ConvertWeaponType(12)
WEAPON_TYPE_WOOD_HEAVY_SLICE = J.ConvertWeaponType(13)
WEAPON_TYPE_WOOD_LIGHT_BASH = J.ConvertWeaponType(14)
WEAPON_TYPE_WOOD_MEDIUM_BASH = J.ConvertWeaponType(15)
WEAPON_TYPE_WOOD_HEAVY_BASH = J.ConvertWeaponType(16)
WEAPON_TYPE_WOOD_LIGHT_STAB = J.ConvertWeaponType(17)
WEAPON_TYPE_WOOD_MEDIUM_STAB = J.ConvertWeaponType(18)
WEAPON_TYPE_CLAW_LIGHT_SLICE = J.ConvertWeaponType(19)
WEAPON_TYPE_CLAW_MEDIUM_SLICE = J.ConvertWeaponType(20)
WEAPON_TYPE_CLAW_HEAVY_SLICE = J.ConvertWeaponType(21)
WEAPON_TYPE_AXE_MEDIUM_CHOP = J.ConvertWeaponType(22)
WEAPON_TYPE_ROCK_HEAVY_BASH = J.ConvertWeaponType(23)
PATHING_TYPE_ANY = J.ConvertPathingType(0)
PATHING_TYPE_WALKABILITY = J.ConvertPathingType(1)
PATHING_TYPE_FLYABILITY = J.ConvertPathingType(2)
PATHING_TYPE_BUILDABILITY = J.ConvertPathingType(3)
PATHING_TYPE_PEONHARVESTPATHING = J.ConvertPathingType(4)
PATHING_TYPE_BLIGHTPATHING = J.ConvertPathingType(5)
PATHING_TYPE_FLOATABILITY = J.ConvertPathingType(6)
PATHING_TYPE_AMPHIBIOUSPATHING = J.ConvertPathingType(7)
RACE_PREF_HUMAN = J.ConvertRacePref(1)
RACE_PREF_ORC = J.ConvertRacePref(2)
RACE_PREF_NIGHTELF = J.ConvertRacePref(4)
RACE_PREF_UNDEAD = J.ConvertRacePref(8)
RACE_PREF_DEMON = J.ConvertRacePref(16)
RACE_PREF_RANDOM = J.ConvertRacePref(32)
RACE_PREF_USER_SELECTABLE = J.ConvertRacePref(64)
MAP_CONTROL_USER = J.ConvertMapControl(0)
MAP_CONTROL_COMPUTER = J.ConvertMapControl(1)
MAP_CONTROL_RESCUABLE = J.ConvertMapControl(2)
MAP_CONTROL_NEUTRAL = J.ConvertMapControl(3)
MAP_CONTROL_CREEP = J.ConvertMapControl(4)
MAP_CONTROL_NONE = J.ConvertMapControl(5)
GAME_TYPE_MELEE = J.ConvertGameType(1)
GAME_TYPE_FFA = J.ConvertGameType(2)
GAME_TYPE_USE_MAP_SETTINGS = J.ConvertGameType(4)
GAME_TYPE_BLIZ = J.ConvertGameType(8)
GAME_TYPE_ONE_ON_ONE = J.ConvertGameType(16)
GAME_TYPE_TWO_TEAM_PLAY = J.ConvertGameType(32)
GAME_TYPE_THREE_TEAM_PLAY = J.ConvertGameType(64)
GAME_TYPE_FOUR_TEAM_PLAY = J.ConvertGameType(128)
MAP_FOG_HIDE_TERRAIN = J.ConvertMapFlag(1)
MAP_FOG_MAP_EXPLORED = J.ConvertMapFlag(2)
MAP_FOG_ALWAYS_VISIBLE = J.ConvertMapFlag(4)
MAP_USE_HANDICAPS = J.ConvertMapFlag(8)
MAP_OBSERVERS = J.ConvertMapFlag(16)
MAP_OBSERVERS_ON_DEATH = J.ConvertMapFlag(32)
MAP_FIXED_COLORS = J.ConvertMapFlag(128)
MAP_LOCK_RESOURCE_TRADING = J.ConvertMapFlag(256)
MAP_RESOURCE_TRADING_ALLIES_ONLY = J.ConvertMapFlag(512)
MAP_LOCK_ALLIANCE_CHANGES = J.ConvertMapFlag(1024)
MAP_ALLIANCE_CHANGES_HIDDEN = J.ConvertMapFlag(2048)
MAP_CHEATS = J.ConvertMapFlag(4096)
MAP_CHEATS_HIDDEN = J.ConvertMapFlag(8192)
MAP_LOCK_SPEED = J.ConvertMapFlag(8192 * 2)
MAP_LOCK_RANDOM_SEED = J.ConvertMapFlag(8192 * 4)
MAP_SHARED_ADVANCED_CONTROL = J.ConvertMapFlag(8192 * 8)
MAP_RANDOM_HERO = J.ConvertMapFlag(8192 * 16)
MAP_RANDOM_RACES = J.ConvertMapFlag(8192 * 32)
MAP_RELOADED = J.ConvertMapFlag(8192 * 64)
MAP_PLACEMENT_RANDOM = J.ConvertPlacement(0)
MAP_PLACEMENT_FIXED = J.ConvertPlacement(1)
MAP_PLACEMENT_USE_MAP_SETTINGS = J.ConvertPlacement(2)
MAP_PLACEMENT_TEAMS_TOGETHER = J.ConvertPlacement(3)
MAP_LOC_PRIO_LOW = J.ConvertStartLocPrio(0)
MAP_LOC_PRIO_HIGH = J.ConvertStartLocPrio(1)
MAP_LOC_PRIO_NOT = J.ConvertStartLocPrio(2)
MAP_DENSITY_NONE = J.ConvertMapDensity(0)
MAP_DENSITY_LIGHT = J.ConvertMapDensity(1)
MAP_DENSITY_MEDIUM = J.ConvertMapDensity(2)
MAP_DENSITY_HEAVY = J.ConvertMapDensity(3)
MAP_DIFFICULTY_EASY = J.ConvertGameDifficulty(0)
MAP_DIFFICULTY_NORMAL = J.ConvertGameDifficulty(1)
MAP_DIFFICULTY_HARD = J.ConvertGameDifficulty(2)
MAP_DIFFICULTY_INSANE = J.ConvertGameDifficulty(3)
MAP_SPEED_SLOWEST = J.ConvertGameSpeed(0)
MAP_SPEED_SLOW = J.ConvertGameSpeed(1)
MAP_SPEED_NORMAL = J.ConvertGameSpeed(2)
MAP_SPEED_FAST = J.ConvertGameSpeed(3)
MAP_SPEED_FASTEST = J.ConvertGameSpeed(4)
PLAYER_SLOT_STATE_EMPTY = J.ConvertPlayerSlotState(0)
PLAYER_SLOT_STATE_PLAYING = J.ConvertPlayerSlotState(1)
PLAYER_SLOT_STATE_LEFT = J.ConvertPlayerSlotState(2)
SOUND_VOLUMEGROUP_UNITMOVEMENT = J.ConvertVolumeGroup(0)
SOUND_VOLUMEGROUP_UNITSOUNDS = J.ConvertVolumeGroup(1)
SOUND_VOLUMEGROUP_COMBAT = J.ConvertVolumeGroup(2)
SOUND_VOLUMEGROUP_SPELLS = J.ConvertVolumeGroup(3)
SOUND_VOLUMEGROUP_UI = J.ConvertVolumeGroup(4)
SOUND_VOLUMEGROUP_MUSIC = J.ConvertVolumeGroup(5)
SOUND_VOLUMEGROUP_AMBIENTSOUNDS = J.ConvertVolumeGroup(6)
SOUND_VOLUMEGROUP_FIRE = J.ConvertVolumeGroup(7)
GAME_STATE_DIVINE_INTERVENTION = J.ConvertIGameState(0)
GAME_STATE_DISCONNECTED = J.ConvertIGameState(1)
GAME_STATE_TIME_OF_DAY = J.ConvertFGameState(2)
PLAYER_STATE_GAME_RESULT = J.ConvertPlayerState(0)
PLAYER_STATE_RESOURCE_GOLD = J.ConvertPlayerState(1)
PLAYER_STATE_RESOURCE_LUMBER = J.ConvertPlayerState(2)
PLAYER_STATE_RESOURCE_HERO_TOKENS = J.ConvertPlayerState(3)
PLAYER_STATE_RESOURCE_FOOD_CAP = J.ConvertPlayerState(4)
PLAYER_STATE_RESOURCE_FOOD_USED = J.ConvertPlayerState(5)
PLAYER_STATE_FOOD_CAP_CEILING = J.ConvertPlayerState(6)
PLAYER_STATE_GIVES_BOUNTY = J.ConvertPlayerState(7)
PLAYER_STATE_ALLIED_VICTORY = J.ConvertPlayerState(8)
PLAYER_STATE_PLACED = J.ConvertPlayerState(9)
PLAYER_STATE_OBSERVER_ON_DEATH = J.ConvertPlayerState(10)
PLAYER_STATE_OBSERVER = J.ConvertPlayerState(11)
PLAYER_STATE_UNFOLLOWABLE = J.ConvertPlayerState(12)
PLAYER_STATE_GOLD_UPKEEP_RATE = J.ConvertPlayerState(13)
PLAYER_STATE_LUMBER_UPKEEP_RATE = J.ConvertPlayerState(14)
PLAYER_STATE_GOLD_GATHERED = J.ConvertPlayerState(15)
PLAYER_STATE_LUMBER_GATHERED = J.ConvertPlayerState(16)
PLAYER_STATE_NO_CREEP_SLEEP = J.ConvertPlayerState(25)
UNIT_STATE_LIFE = J.ConvertUnitState(0)
UNIT_STATE_MAX_LIFE = J.ConvertUnitState(1)
UNIT_STATE_MANA = J.ConvertUnitState(2)
UNIT_STATE_MAX_MANA = J.ConvertUnitState(3)
UNIT_STATE_ATTACK_DICE = J.ConvertUnitState(0x10) -- 骰子数量
UNIT_STATE_ATTACK_SIDE = J.ConvertUnitState(0x11) -- 骰子面数
UNIT_STATE_ATTACK_WHITE = J.ConvertUnitState(0x12) -- 基础攻击
UNIT_STATE_ATTACK_BONUS = J.ConvertUnitState(0x13) -- 附加伤害
UNIT_STATE_ATTACK_MIX = J.ConvertUnitState(0x14) -- 攻击最小值
UNIT_STATE_ATTACK_MAX = J.ConvertUnitState(0x15) -- 攻击最大值
UNIT_STATE_ATTACK_RANGE = J.ConvertUnitState(0x16) -- 攻击范围
UNIT_STATE_DEFEND_WHITE = J.ConvertUnitState(0x20) -- 基础护甲
UNIT_STATE_ATTACK_SPACE = J.ConvertUnitState(0x25) -- 攻击间隔
UNIT_STATE_ATTACK_SPEED = J.ConvertUnitState(0x51) -- 攻击速度
MOVE_TYPE_NONE = 0x00 --没有
MOVE_TYPE_NOT = 0x01 --无法移动
MOVE_TYPE_FOOT = 0x02 --步行
MOVE_TYPE_FLY = 0x04 --飞行
MOVE_TYPE_MINE = 0x08 --地雷
MOVE_TYPE_WIND = 0x10 --疾风步
MOVE_TYPE_UN = 0x20 --未知
MOVE_TYPE_FLOAT = 0x40 --漂浮
MOVE_TYPE_AMPH = 0x80 --两栖
MOVE_NAME_NONE = "none" --没有（无视碰撞）
MOVE_NAME_FOOT = "foot" --步行
MOVE_NAME_HORSE = "horse" --骑马
MOVE_NAME_FLY = "fly" --飞行（还具有空中视野，也可以设置飞行高度）
MOVE_NAME_HOVER = "hover" --浮空（不会踩中地雷）
MOVE_NAME_FLOAT = "float" --漂浮（只能在深水里活动）
MOVE_NAME_AMPH = "amph" --两栖
MOVE_NAME_UNBUILD = "unbuild" --不可建造
DEFENSE_TYPE_LIGHT = 0
DEFENSE_TYPE_MEDIUM = 1
DEFENSE_TYPE_LARGE = 2
DEFENSE_TYPE_FORT = 3
DEFENSE_TYPE_NORMAL = 4
DEFENSE_TYPE_HERO = 5
DEFENSE_TYPE_DIVINE = 6
DEFENSE_TYPE_NONE = 7
AI_DIFFICULTY_NEWBIE = J.ConvertAIDifficulty(0)
AI_DIFFICULTY_NORMAL = J.ConvertAIDifficulty(1)
AI_DIFFICULTY_INSANE = J.ConvertAIDifficulty(2)
PLAYER_SCORE_UNITS_TRAINED = J.ConvertPlayerScore(0)
PLAYER_SCORE_UNITS_KILLED = J.ConvertPlayerScore(1)
PLAYER_SCORE_STRUCT_BUILT = J.ConvertPlayerScore(2)
PLAYER_SCORE_STRUCT_RAZED = J.ConvertPlayerScore(3)
PLAYER_SCORE_TECH_PERCENT = J.ConvertPlayerScore(4)
PLAYER_SCORE_FOOD_MAXPROD = J.ConvertPlayerScore(5)
PLAYER_SCORE_FOOD_MAXUSED = J.ConvertPlayerScore(6)
PLAYER_SCORE_HEROES_KILLED = J.ConvertPlayerScore(7)
PLAYER_SCORE_ITEMS_GAINED = J.ConvertPlayerScore(8)
PLAYER_SCORE_MERCS_HIRED = J.ConvertPlayerScore(9)
PLAYER_SCORE_GOLD_MINED_TOTAL = J.ConvertPlayerScore(10)
PLAYER_SCORE_GOLD_MINED_UPKEEP = J.ConvertPlayerScore(11)
PLAYER_SCORE_GOLD_LOST_UPKEEP = J.ConvertPlayerScore(12)
PLAYER_SCORE_GOLD_LOST_TAX = J.ConvertPlayerScore(13)
PLAYER_SCORE_GOLD_GIVEN = J.ConvertPlayerScore(14)
PLAYER_SCORE_GOLD_RECEIVED = J.ConvertPlayerScore(15)
PLAYER_SCORE_LUMBER_TOTAL = J.ConvertPlayerScore(16)
PLAYER_SCORE_LUMBER_LOST_UPKEEP = J.ConvertPlayerScore(17)
PLAYER_SCORE_LUMBER_LOST_TAX = J.ConvertPlayerScore(18)
PLAYER_SCORE_LUMBER_GIVEN = J.ConvertPlayerScore(19)
PLAYER_SCORE_LUMBER_RECEIVED = J.ConvertPlayerScore(20)
PLAYER_SCORE_UNIT_TOTAL = J.ConvertPlayerScore(21)
PLAYER_SCORE_HERO_TOTAL = J.ConvertPlayerScore(22)
PLAYER_SCORE_RESOURCE_TOTAL = J.ConvertPlayerScore(23)
PLAYER_SCORE_TOTAL = J.ConvertPlayerScore(24)
EVENT_GAME_VICTORY = J.ConvertGameEvent(0)
EVENT_GAME_END_LEVEL = J.ConvertGameEvent(1)
EVENT_GAME_VARIABLE_LIMIT = J.ConvertGameEvent(2)
EVENT_GAME_STATE_LIMIT = J.ConvertGameEvent(3)
EVENT_GAME_TIMER_EXPIRED = J.ConvertGameEvent(4)
EVENT_GAME_ENTER_REGION = J.ConvertGameEvent(5)
EVENT_GAME_LEAVE_REGION = J.ConvertGameEvent(6)
EVENT_GAME_TRACKABLE_HIT = J.ConvertGameEvent(7)
EVENT_GAME_TRACKABLE_TRACK = J.ConvertGameEvent(8)
EVENT_GAME_SHOW_SKILL = J.ConvertGameEvent(9)
EVENT_GAME_BUILD_SUBMENU = J.ConvertGameEvent(10)
EVENT_PLAYER_STATE_LIMIT = J.ConvertPlayerEvent(11)
EVENT_PLAYER_ALLIANCE_CHANGED = J.ConvertPlayerEvent(12)
EVENT_PLAYER_DEFEAT = J.ConvertPlayerEvent(13)
EVENT_PLAYER_VICTORY = J.ConvertPlayerEvent(14)
EVENT_PLAYER_LEAVE = J.ConvertPlayerEvent(15)
EVENT_PLAYER_CHAT = J.ConvertPlayerEvent(16)
EVENT_PLAYER_END_CINEMATIC = J.ConvertPlayerEvent(17)
EVENT_PLAYER_UNIT_ATTACKED = J.ConvertPlayerUnitEvent(18)
EVENT_PLAYER_UNIT_RESCUED = J.ConvertPlayerUnitEvent(19)
EVENT_PLAYER_UNIT_DEATH = J.ConvertPlayerUnitEvent(20)
EVENT_PLAYER_UNIT_DECAY = J.ConvertPlayerUnitEvent(21)
EVENT_PLAYER_UNIT_DETECTED = J.ConvertPlayerUnitEvent(22)
EVENT_PLAYER_UNIT_HIDDEN = J.ConvertPlayerUnitEvent(23)
EVENT_PLAYER_UNIT_SELECTED = J.ConvertPlayerUnitEvent(24)
EVENT_PLAYER_UNIT_DESELECTED = J.ConvertPlayerUnitEvent(25)
EVENT_PLAYER_UNIT_CONSTRUCT_START = J.ConvertPlayerUnitEvent(26)
EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL = J.ConvertPlayerUnitEvent(27)
EVENT_PLAYER_UNIT_CONSTRUCT_FINISH = J.ConvertPlayerUnitEvent(28)
EVENT_PLAYER_UNIT_UPGRADE_START = J.ConvertPlayerUnitEvent(29)
EVENT_PLAYER_UNIT_UPGRADE_CANCEL = J.ConvertPlayerUnitEvent(30)
EVENT_PLAYER_UNIT_UPGRADE_FINISH = J.ConvertPlayerUnitEvent(31)
EVENT_PLAYER_UNIT_TRAIN_START = J.ConvertPlayerUnitEvent(32)
EVENT_PLAYER_UNIT_TRAIN_CANCEL = J.ConvertPlayerUnitEvent(33)
EVENT_PLAYER_UNIT_TRAIN_FINISH = J.ConvertPlayerUnitEvent(34)
EVENT_PLAYER_UNIT_RESEARCH_START = J.ConvertPlayerUnitEvent(35)
EVENT_PLAYER_UNIT_RESEARCH_CANCEL = J.ConvertPlayerUnitEvent(36)
EVENT_PLAYER_UNIT_RESEARCH_FINISH = J.ConvertPlayerUnitEvent(37)
EVENT_PLAYER_UNIT_ISSUED_ORDER = J.ConvertPlayerUnitEvent(38)
EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER = J.ConvertPlayerUnitEvent(39)
EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER = J.ConvertPlayerUnitEvent(40)
EVENT_PLAYER_UNIT_ISSUED_UNIT_ORDER = J.ConvertPlayerUnitEvent(40)
EVENT_PLAYER_HERO_LEVEL = J.ConvertPlayerUnitEvent(41)
EVENT_PLAYER_HERO_SKILL = J.ConvertPlayerUnitEvent(42)
EVENT_PLAYER_HERO_REVIVABLE = J.ConvertPlayerUnitEvent(43)
EVENT_PLAYER_HERO_REVIVE_START = J.ConvertPlayerUnitEvent(44)
EVENT_PLAYER_HERO_REVIVE_CANCEL = J.ConvertPlayerUnitEvent(45)
EVENT_PLAYER_HERO_REVIVE_FINISH = J.ConvertPlayerUnitEvent(46)
EVENT_PLAYER_UNIT_SUMMON = J.ConvertPlayerUnitEvent(47)
EVENT_PLAYER_UNIT_DROP_ITEM = J.ConvertPlayerUnitEvent(48)
EVENT_PLAYER_UNIT_PICKUP_ITEM = J.ConvertPlayerUnitEvent(49)
EVENT_PLAYER_UNIT_USE_ITEM = J.ConvertPlayerUnitEvent(50)
EVENT_PLAYER_UNIT_LOADED = J.ConvertPlayerUnitEvent(51)
EVENT_UNIT_DAMAGED = J.ConvertUnitEvent(52)
EVENT_UNIT_DEATH = J.ConvertUnitEvent(53)
EVENT_UNIT_DECAY = J.ConvertUnitEvent(54)
EVENT_UNIT_DETECTED = J.ConvertUnitEvent(55)
EVENT_UNIT_HIDDEN = J.ConvertUnitEvent(56)
EVENT_UNIT_SELECTED = J.ConvertUnitEvent(57)
EVENT_UNIT_DESELECTED = J.ConvertUnitEvent(58)
EVENT_UNIT_STATE_LIMIT = J.ConvertUnitEvent(59)
EVENT_UNIT_ACQUIRED_TARGET = J.ConvertUnitEvent(60)
EVENT_UNIT_TARGET_IN_RANGE = J.ConvertUnitEvent(61)
EVENT_UNIT_ATTACKED = J.ConvertUnitEvent(62)
EVENT_UNIT_RESCUED = J.ConvertUnitEvent(63)
EVENT_UNIT_CONSTRUCT_CANCEL = J.ConvertUnitEvent(64)
EVENT_UNIT_CONSTRUCT_FINISH = J.ConvertUnitEvent(65)
EVENT_UNIT_UPGRADE_START = J.ConvertUnitEvent(66)
EVENT_UNIT_UPGRADE_CANCEL = J.ConvertUnitEvent(67)
EVENT_UNIT_UPGRADE_FINISH = J.ConvertUnitEvent(68)
EVENT_UNIT_TRAIN_START = J.ConvertUnitEvent(69)
EVENT_UNIT_TRAIN_CANCEL = J.ConvertUnitEvent(70)
EVENT_UNIT_TRAIN_FINISH = J.ConvertUnitEvent(71)
EVENT_UNIT_RESEARCH_START = J.ConvertUnitEvent(72)
EVENT_UNIT_RESEARCH_CANCEL = J.ConvertUnitEvent(73)
EVENT_UNIT_RESEARCH_FINISH = J.ConvertUnitEvent(74)
EVENT_UNIT_ISSUED_ORDER = J.ConvertUnitEvent(75)
EVENT_UNIT_ISSUED_POINT_ORDER = J.ConvertUnitEvent(76)
EVENT_UNIT_ISSUED_TARGET_ORDER = J.ConvertUnitEvent(77)
EVENT_UNIT_HERO_LEVEL = J.ConvertUnitEvent(78)
EVENT_UNIT_HERO_SKILL = J.ConvertUnitEvent(79)
EVENT_UNIT_HERO_REVIVABLE = J.ConvertUnitEvent(80)
EVENT_UNIT_HERO_REVIVE_START = J.ConvertUnitEvent(81)
EVENT_UNIT_HERO_REVIVE_CANCEL = J.ConvertUnitEvent(82)
EVENT_UNIT_HERO_REVIVE_FINISH = J.ConvertUnitEvent(83)
EVENT_UNIT_SUMMON = J.ConvertUnitEvent(84)
EVENT_UNIT_DROP_ITEM = J.ConvertUnitEvent(85)
EVENT_UNIT_PICKUP_ITEM = J.ConvertUnitEvent(86)
EVENT_UNIT_USE_ITEM = J.ConvertUnitEvent(87)
EVENT_UNIT_LOADED = J.ConvertUnitEvent(88)
EVENT_WIDGET_DEATH = J.ConvertWidgetEvent(89)
EVENT_DIALOG_BUTTON_CLICK = J.ConvertDialogEvent(90)
EVENT_DIALOG_CLICK = J.ConvertDialogEvent(91)
EVENT_GAME_LOADED = J.ConvertGameEvent(256)
EVENT_GAME_TOURNAMENT_FINISH_SOON = J.ConvertGameEvent(257)
EVENT_GAME_TOURNAMENT_FINISH_NOW = J.ConvertGameEvent(258)
EVENT_GAME_SAVE = J.ConvertGameEvent(259)
EVENT_PLAYER_ARROW_LEFT_DOWN = J.ConvertPlayerEvent(261)
EVENT_PLAYER_ARROW_LEFT_UP = J.ConvertPlayerEvent(262)
EVENT_PLAYER_ARROW_RIGHT_DOWN = J.ConvertPlayerEvent(263)
EVENT_PLAYER_ARROW_RIGHT_UP = J.ConvertPlayerEvent(264)
EVENT_PLAYER_ARROW_DOWN_DOWN = J.ConvertPlayerEvent(265)
EVENT_PLAYER_ARROW_DOWN_UP = J.ConvertPlayerEvent(266)
EVENT_PLAYER_ARROW_UP_DOWN = J.ConvertPlayerEvent(267)
EVENT_PLAYER_ARROW_UP_UP = J.ConvertPlayerEvent(268)
EVENT_PLAYER_UNIT_SELL = J.ConvertPlayerUnitEvent(269)
EVENT_PLAYER_UNIT_CHANGE_OWNER = J.ConvertPlayerUnitEvent(270)
EVENT_PLAYER_UNIT_SELL_ITEM = J.ConvertPlayerUnitEvent(271)
EVENT_PLAYER_UNIT_SPELL_CHANNEL = J.ConvertPlayerUnitEvent(272)
EVENT_PLAYER_UNIT_SPELL_CAST = J.ConvertPlayerUnitEvent(273)
EVENT_PLAYER_UNIT_SPELL_EFFECT = J.ConvertPlayerUnitEvent(274)
EVENT_PLAYER_UNIT_SPELL_FINISH = J.ConvertPlayerUnitEvent(275)
EVENT_PLAYER_UNIT_SPELL_ENDCAST = J.ConvertPlayerUnitEvent(276)
EVENT_PLAYER_UNIT_PAWN_ITEM = J.ConvertPlayerUnitEvent(277)
EVENT_UNIT_SELL = J.ConvertUnitEvent(286)
EVENT_UNIT_CHANGE_OWNER = J.ConvertUnitEvent(287)
EVENT_UNIT_SELL_ITEM = J.ConvertUnitEvent(288)
EVENT_UNIT_SPELL_CHANNEL = J.ConvertUnitEvent(289)
EVENT_UNIT_SPELL_CAST = J.ConvertUnitEvent(290)
EVENT_UNIT_SPELL_EFFECT = J.ConvertUnitEvent(291)
EVENT_UNIT_SPELL_FINISH = J.ConvertUnitEvent(292)
EVENT_UNIT_SPELL_ENDCAST = J.ConvertUnitEvent(293)
EVENT_UNIT_PAWN_ITEM = J.ConvertUnitEvent(294)
LESS_THAN = J.ConvertLimitOp(0)
LESS_THAN_OR_EQUAL = J.ConvertLimitOp(1)
EQUAL = J.ConvertLimitOp(2)
GREATER_THAN_OR_EQUAL = J.ConvertLimitOp(3)
GREATER_THAN = J.ConvertLimitOp(4)
NOT_EQUAL = J.ConvertLimitOp(5)
UNIT_TYPE_HERO = J.ConvertUnitType(0)
UNIT_TYPE_DEAD = J.ConvertUnitType(1)
UNIT_TYPE_STRUCTURE = J.ConvertUnitType(2)
UNIT_TYPE_FLYING = J.ConvertUnitType(3)
UNIT_TYPE_GROUND = J.ConvertUnitType(4)
UNIT_TYPE_ATTACKS_FLYING = J.ConvertUnitType(5)
UNIT_TYPE_ATTACKS_GROUND = J.ConvertUnitType(6)
UNIT_TYPE_MELEE_ATTACKER = J.ConvertUnitType(7)
UNIT_TYPE_RANGED_ATTACKER = J.ConvertUnitType(8)
UNIT_TYPE_GIANT = J.ConvertUnitType(9)
UNIT_TYPE_SUMMONED = J.ConvertUnitType(10)
UNIT_TYPE_STUNNED = J.ConvertUnitType(11)
UNIT_TYPE_PLAGUED = J.ConvertUnitType(12)
UNIT_TYPE_SNARED = J.ConvertUnitType(13)
UNIT_TYPE_UNDEAD = J.ConvertUnitType(14)
UNIT_TYPE_MECHANICAL = J.ConvertUnitType(15)
UNIT_TYPE_PEON = J.ConvertUnitType(16)
UNIT_TYPE_SAPPER = J.ConvertUnitType(17)
UNIT_TYPE_TOWNHALL = J.ConvertUnitType(18)
UNIT_TYPE_ANCIENT = J.ConvertUnitType(19)
UNIT_TYPE_TAUREN = J.ConvertUnitType(20)
UNIT_TYPE_POISONED = J.ConvertUnitType(21)
UNIT_TYPE_POLYMORPHED = J.ConvertUnitType(22)
UNIT_TYPE_SLEEPING = J.ConvertUnitType(23)
UNIT_TYPE_RESISTANT = J.ConvertUnitType(24)
UNIT_TYPE_ETHEREAL = J.ConvertUnitType(25)
UNIT_TYPE_MAGIC_IMMUNE = J.ConvertUnitType(26)
ITEM_TYPE_PERMANENT = J.ConvertItemType(0)
ITEM_TYPE_CHARGED = J.ConvertItemType(1)
ITEM_TYPE_POWERUP = J.ConvertItemType(2)
ITEM_TYPE_ARTIFACT = J.ConvertItemType(3)
ITEM_TYPE_PURCHASABLE = J.ConvertItemType(4)
ITEM_TYPE_CAMPAIGN = J.ConvertItemType(5)
ITEM_TYPE_MISCELLANEOUS = J.ConvertItemType(6)
ITEM_TYPE_UNKNOWN = J.ConvertItemType(7)
ITEM_TYPE_ANY = J.ConvertItemType(8)
ITEM_TYPE_TOME = J.ConvertItemType(2)
CAMERA_FIELD_TARGET_DISTANCE = J.ConvertCameraField(0)
CAMERA_FIELD_FARZ = J.ConvertCameraField(1)
CAMERA_FIELD_ANGLE_OF_ATTACK = J.ConvertCameraField(2)
CAMERA_FIELD_FIELD_OF_VIEW = J.ConvertCameraField(3)
CAMERA_FIELD_ROLL = J.ConvertCameraField(4)
CAMERA_FIELD_ROTATION = J.ConvertCameraField(5)
CAMERA_FIELD_ZOFFSET = J.ConvertCameraField(6)
BLEND_MODE_NONE = J.ConvertBlendMode(0)
BLEND_MODE_DONT_CARE = J.ConvertBlendMode(0)
BLEND_MODE_KEYALPHA = J.ConvertBlendMode(1)
BLEND_MODE_BLEND = J.ConvertBlendMode(2)
BLEND_MODE_ADDITIVE = J.ConvertBlendMode(3)
BLEND_MODE_MODULATE = J.ConvertBlendMode(4)
BLEND_MODE_MODULATE_2X = J.ConvertBlendMode(5)
RARITY_FREQUENT = J.ConvertRarityControl(0)
RARITY_RARE = J.ConvertRarityControl(1)
TEXMAP_FLAG_NONE = J.ConvertTexMapFlags(0)
TEXMAP_FLAG_WRAP_U = J.ConvertTexMapFlags(1)
TEXMAP_FLAG_WRAP_V = J.ConvertTexMapFlags(2)
TEXMAP_FLAG_WRAP_UV = J.ConvertTexMapFlags(3)
FOG_OF_WAR_MASKED = J.ConvertFogState(1)
FOG_OF_WAR_FOGGED = J.ConvertFogState(2)
FOG_OF_WAR_VISIBLE = J.ConvertFogState(4)
CAMERA_MARGIN_LEFT = 0
CAMERA_MARGIN_RIGHT = 1
CAMERA_MARGIN_TOP = 2
CAMERA_MARGIN_BOTTOM = 3
EFFECT_TYPE_EFFECT = J.ConvertEffectType(0)
EFFECT_TYPE_TARGET = J.ConvertEffectType(1)
EFFECT_TYPE_CASTER = J.ConvertEffectType(2)
EFFECT_TYPE_SPECIAL = J.ConvertEffectType(3)
EFFECT_TYPE_AREA_EFFECT = J.ConvertEffectType(4)
EFFECT_TYPE_MISSILE = J.ConvertEffectType(5)
EFFECT_TYPE_LIGHTNING = J.ConvertEffectType(6)
SOUND_TYPE_EFFECT = J.ConvertSoundType(0)
SOUND_TYPE_EFFECT_LOOPED = J.ConvertSoundType(1)
EVENT_DAMAGE_DATA_VAILD = 0
EVENT_DAMAGE_DATA_IS_PHYSICAL = 1
EVENT_DAMAGE_DATA_IS_ATTACK = 2
EVENT_DAMAGE_DATA_IS_RANGED = 3
EVENT_DAMAGE_DATA_DAMAGE_TYPE = 4
EVENT_DAMAGE_DATA_WEAPON_TYPE = 5
EVENT_DAMAGE_DATA_ATTACK_TYPE = 6
COLLISION_TYPE_UNIT = 1 --单位
COLLISION_TYPE_BUILDING = 3 --建筑
MOUSE_ORDER_CLICK = 1
MOUSE_ORDER_ENTER = 2
MOUSE_ORDER_LEAVE = 3
MOUSE_ORDER_RELEASE = 4
MOUSE_ORDER_DOWN = 5
MOUSE_ORDER_SCROLL = 6
CHECKBOX_CHECKED = 7
CHECKBOX_UNCHECKED = 8
EDITBOX_TEXT_CHANGED = 9
POPUPMENU_ITEM_CHANGE_START = 10
POPUPMENU_ITEM_CHANGED_START = 11
MOUSE_ORDER_DOUBLE_CLICK = 12
SPRITE_ANIM_UPDATE = 13
GAME_KEY_A = 65 -- A
GAME_KEY_B = 66 -- B
GAME_KEY_C = 67 -- C
GAME_KEY_D = 68 -- D
GAME_KEY_E = 69 -- E
GAME_KEY_F = 70 -- F
GAME_KEY_G = 71 -- G
GAME_KEY_H = 72 -- H
GAME_KEY_I = 73 -- I
GAME_KEY_J = 74 -- J
GAME_KEY_K = 75 -- K
GAME_KEY_L = 76 -- L
GAME_KEY_M = 77 -- M
GAME_KEY_N = 78 -- N
GAME_KEY_O = 79 -- O
GAME_KEY_P = 80 -- P
GAME_KEY_Q = 81 -- Q
GAME_KEY_R = 82 -- R
GAME_KEY_S = 83 -- S
GAME_KEY_T = 84 -- T
GAME_KEY_U = 85 -- U
GAME_KEY_V = 86 -- V
GAME_KEY_W = 87 -- W
GAME_KEY_X = 88 -- X
GAME_KEY_Y = 89 -- Y
GAME_KEY_Z = 90 -- Z
GAME_KEY_0 = 48 -- 0
GAME_KEY_1 = 49 -- 1
GAME_KEY_2 = 50 -- 2
GAME_KEY_3 = 51 -- 3
GAME_KEY_4 = 52 -- 4
GAME_KEY_5 = 53 -- 5
GAME_KEY_6 = 53 -- 6
GAME_KEY_7 = 55 -- 7
GAME_KEY_8 = 56 -- 8
GAME_KEY_9 = 57 -- 9
GAME_KEY_TAB = 9 -- Tab
GAME_KEY_SPACE = 32 -- 空格
GAME_KEY_ENTER = 513 -- 回车
GAME_KEY_BACKSPACE = 514 -- 退格
GAME_KEY_SHIFT = 0-- Shift
GAME_KEY_RIGHT = 516 -- →
GAME_KEY_UP = 517 -- ↑
GAME_KEY_LEFT = 518 -- ←
GAME_KEY_DOWN = 519 -- ↓
GAME_KEY_MOUSE_LEFT = 1 --鼠标左键
GAME_KEY_MOUSE_RIGHT = 2 --鼠标右键
GAME_KEY_ACTION_PRESS = 1 --点击
GAME_KEY_ACTION_RELEASE = 0 --释放
SYMBOL_JAPI = "<JAPI>"
SYMBOL_ODD = "<ODD>"
SYMBOL_RES = "<RES>"
SYMBOL_RAI = "<RAI>"
SYMBOL_AMP = "<AMP>"
SYMBOL_DYN = "<DYN>"
SYMBOL_D = "<D>"
SYMBOL_E = "<E>"
SYMBOL_EI = "<EI>"
UI_ALIGN_LEFT_TOP = 0 -- UI锚点方位
UI_ALIGN_TOP = 1
UI_ALIGN_RIGHT_TOP = 2
UI_ALIGN_LEFT = 3
UI_ALIGN_CENTER = 4
UI_ALIGN_RIGHT = 5
UI_ALIGN_LEFT_BOTTOM = 6
UI_ALIGN_BOTTOM = 7
UI_ALIGN_RIGHT_BOTTOM = 8
TEXT_ALIGN_LEFT_TOP = 11 -- 文本左上对齐
TEXT_ALIGN_TOP = 17 -- 文本上对齐
TEXT_ALIGN_RIGHT_TOP = 37 -- 文本右上对齐
TEXT_ALIGN_CENTER = 18 -- 文本对齐中
TEXT_ALIGN_LEFT = 10 -- 文本对齐左
TEXT_ALIGN_RIGHT = 34 -- 文本对齐右
TEXT_ALIGN_LEFT_BOTTOM = 12 -- 文本左下对齐
TEXT_ALIGN_BOTTOM = 20 -- 文本下对齐
TEXT_ALIGN_RIGHT_BOTTOM = 36 -- 文本右下对齐
LAYOUT_ALIGN_LEFT_TOP = 1 -- 额外布局方位
LAYOUT_ALIGN_TOP = 2
LAYOUT_ALIGN_RIGHT_TOP = 3
LAYOUT_ALIGN_LEFT = 4
LAYOUT_ALIGN_CENTER = 5
LAYOUT_ALIGN_RIGHT = 6
LAYOUT_ALIGN_LEFT_BOTTOM = 7
LAYOUT_ALIGN_BOTTOM = 8
LAYOUT_ALIGN_RIGHT_BOTTOM = 9
RACE_HUMAN_NAME = "human"
RACE_ORC_NAME = "orc"
RACE_NIGHTELF_NAME = "nightelf"
RACE_UNDEAD_NAME = "undead"
RACE_SELECTION_SPELL_AREA_OF_EFFECT = {
    [RACE_HUMAN_NAME] = "ReplaceableTextures\\Selection\\SpellAreaOfEffect.blp",
    [RACE_ORC_NAME] = "ReplaceableTextures\\Selection\\SpellAreaOfEffect_Orc.blp",
    [RACE_NIGHTELF_NAME] = "ReplaceableTextures\\Selection\\SpellAreaOfEffect_NE.blp",
    [RACE_UNDEAD_NAME] = "ReplaceableTextures\\Selection\\SpellAreaOfEffect_Undead.blp",
}
BLP_COLOR_RED = "ReplaceableTextures\\TeamColor\\TeamColor00.blp"
BLP_COLOR_BLUE = "ReplaceableTextures\\TeamColor\\TeamColor01.blp"
BLP_COLOR_CYAN = "ReplaceableTextures\\TeamColor\\TeamColor02.blp"
BLP_COLOR_PURPLE = "ReplaceableTextures\\TeamColor\\TeamColor03.blp"
BLP_COLOR_YELLOW = "ReplaceableTextures\\TeamColor\\TeamColor04.blp"
BLP_COLOR_ORANGE = "ReplaceableTextures\\TeamColor\\TeamColor05.blp"
BLP_COLOR_GREEN = "ReplaceableTextures\\TeamColor\\TeamColor06.blp"
BLP_COLOR_PINK = "ReplaceableTextures\\TeamColor\\TeamColor07.blp"
BLP_COLOR_LIGHT_GRAY = "ReplaceableTextures\\TeamColor\\TeamColor08.blp"
BLP_COLOR_LIGHT_BLUE = "ReplaceableTextures\\TeamColor\\TeamColor09.blp"
BLP_COLOR_AQUA = "ReplaceableTextures\\TeamColor\\TeamColor10.blp"
BLP_COLOR_BROWN = "ReplaceableTextures\\TeamColor\\TeamColor11.blp"
BLP_COLOR_BLACK = "ReplaceableTextures\\TeamColor\\TeamColor12.blp"
TEAM_COLOR_BLP = {
    BLP_COLOR_RED, BLP_COLOR_BLUE, BLP_COLOR_CYAN, BLP_COLOR_PURPLE,
    BLP_COLOR_YELLOW, BLP_COLOR_ORANGE, BLP_COLOR_GREEN, BLP_COLOR_PINK,
    BLP_COLOR_LIGHT_GRAY, BLP_COLOR_LIGHT_BLUE, BLP_COLOR_AQUA, BLP_COLOR_BROWN,
    BLP_COLOR_BLACK
}
X_UI_NIL = "Framework\\nil.tga"
X_UI_BLACK = "Framework\\black.tga"
X_UI_SHADOW_FLYER = "ReplaceableTextures\\Shadows\\ShadowFlyer.blp"
X_UI_QUESTION = "ReplaceableTextures\\CommandButtons\\BTNSelectHeroOn.blp"